/*
 *  ClientList.h
 *  ClientDispatch
 *
 *  Created by Andrey on 14/10/2008.
 *  Copyright 2008 ИУ7-2003. All rights reserved.
 *
 */

/** \file ClientList.h
	\brief Файл, содержащий описания функции по работе со списком всех подключенных 
	клиентов.	
 */

#include "ClientInfo.h"

/** \fn void InitClientList();
	\brief Функция инициализации списка клиентов.
	\param Нет
	\return Ничего
 */
void InitClientList();
/** \fn void AddClientToList(CDClientInfoPtr clientInfo);
	\brief Функция, добавляющая информацию о новом клиенте в список.
	\param CDClientInfoPtr clientInfo -- указатель на структуру СDClientInfo, 
	содержащую информацию о добавляемом клиенте
	\return Ничего
 */
void AddClientToList(CDClientInfoPtr clientInfo);
/** \fn CDClientInfoPtr GetClientInfoByAddress(AsciiStringPtr clientAddress);
	\brief Функция, позволяющая по строке с IP-адресом клиента получить указатель 
	на структуру CDClientInfo c информацией о нём
	\param AsciiStringPtr clientAddress -- строка с IP-адресом клиента
	\return Указатель на структуру CDClientInfo c информацией данном клиенте
 */
CDClientInfoPtr GetClientInfoByAddress(AsciiStringPtr clientAddress);
/** \fn CDClientInfoPtr RemoveClientFromList(AsciiStringPtr clientAddress);
	\brief Функция, удаляющая информацию о клиенте из списка клиентов
	\param AsciiStringPtr clientAddress -- строка с IP-адресом клиента, информацию
	о котором необходимо удалить из списка
	\return NULL
 */
CDClientInfoPtr RemoveClientFromList(AsciiStringPtr clientAddress);
/** \fn void PurgeClientList();
 \brief Функция, удаляющая все записи из списка клиентов
 \param Нет
 \return Ничего
 */
void PurgeClientList();